#ifndef LOGGER_H
#define LOGGER_H

#include <string>
#include <fstream>
#include <memory>
#include <mutex>

/**
 * @brief 日志系统 (单例模式)
 * 
 * 提供线程安全的日志记录功能，将操作日志写入文件
 */
class Logger {
public:
    // 删除拷贝构造函数和赋值运算符
    Logger(const Logger&) = delete;
    Logger& operator=(const Logger&) = delete;

    // 单例模式
    static Logger& getInstance() {
        static Logger instance;
        return instance;
    }

    /**
     * @brief 记录日志
     * @param message 日志消息
     */
    void log(const std::string& message);

private:
    Logger();  // 私有构造函数
    ~Logger(); // 私有析构函数

    std::ofstream logFile;  // 日志文件输出流
    std::mutex logMutex;    // 互斥锁保证线程安全

};

#endif // LOGGER_H